package me.helllp.book.concurrent.ch03;

import java.util.concurrent.locks.LockSupport;

/**
 * 线程阻塞工具类 LockSupport
 * 
 * @author Administrator
 *
 */
public class LockSupportDemo {
	public static Object u = new Object();

	static ChangeObjectThread t1 = new ChangeObjectThread("t1");
	static ChangeObjectThread t2 = new ChangeObjectThread("t2");
	
	public static class ChangeObjectThread extends Thread{
		public ChangeObjectThread(String name){
			super.setName(name);
		}
		
		@Override
		public void run() {
			synchronized (u) {
				System.out.println("in " + getName());
				LockSupport.park();
				
				if(Thread.interrupted()){
					System.out.println(getName() + " 被中断了！");
				}
			}
		}
	}
	
	public static void main(String[] args) throws InterruptedException {
		t1.start();
		Thread.sleep(100);
		t2.start();
		t1.interrupt();
//		LockSupport.unpark(t1);
		LockSupport.unpark(t2);
		t1.join();
		t2.join();
		
	}
}
